package com.zhs.study;

import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.util.List;

/**
 * @author zhenghuisheng
 * @date : 2023/6/5
 */
public class MyClassPathXmlApplicationContext extends ClassPathXmlApplicationContext {

	//构造方法
	public MyClassPathXmlApplicationContext(String... locations) {
		super(locations);
	}

	/**
	 * 初始化所有的属性
	 */
	@Override
	protected void initPropertySources() {
		//获取用户名
		String requiredProperty = getEnvironment().getRequiredProperty("USERNAME");
		System.out.println("当前系统用户名称为：" + requiredProperty);
		//获取app名称
		String applicationName = getApplicationName();
		System.out.println("当前应用名称为：" + applicationName);
		//获取前置处理器
		List<BeanFactoryPostProcessor> beanFactoryPostProcessors = getBeanFactoryPostProcessors();
		System.out.println("定义的bean工厂的后置处理器为的集合长度为："+ beanFactoryPostProcessors.size());

	}

}
